Tutorial: 002 - Instantiating

Instantiating

eureca.io client and server instances can take different options which let you control their behaviour.


Server instantiation

The first thing you need to do is to import eureca package

var Eureca = require('eureca.io');

Default instantiation

Code

var eurecaServer = new Eureca.Server();

This will instantiate eureca.io with default values, you will not be able to call any client side function but the client can call exported server functions.
It will use default transport library "engine.io"

using a specific transport library

By default, eureca.io will use engine.io as a transport library, this is good for most cases, but if you want to use other transport you can specify it using the transport option

Code

var eurecaServer = new Eureca.Server({transport:'sockjs'});

accepted transport values are : engine.io, sockjs, uws, faye, websockets and webrtc

Allowing client side function

Code

var eurecaServer = new Eureca.Server({allow:['foo', 'bar', 'echo']});

The above instantiation will allos the server to call the given client exported functions : foo(), bar() and echo() .

Authentication functon

Eureca server can define an authentication function.
if present, the clients need to call client side authenticate function before being able to make server calls.

Code

var eurecaServer = new Eureca.Server({
    authenticate:function (authToken, next) {        
            //your auth logic goes here
            //
            if (success) next();
            else next('Auth failed');
        }
    });

See Authentication tutorial for more details on authentication usage

Client instantiation

You can use eureca client from an html page (browser client) or from nodejs script (nodejs client)

there is a little different due to the nature of the client.

in a browser client you need to include eureca.js script in tag

<script src="/eureca.js"></script>

in a nodejs client you need to require eureca.io package

var Eureca = require('eureca.io');

Default instantiation

Browser client

var eurecaClient = new Eureca.Client();

this works fine because browser client can guess eureca server uri.

but the recommanded syntax is :

//supposing the server is running on localhost and port 8080 
var eurecaClient = new Eureca.Client({uri:'ws://localhost:8080/'});

Nodejs client

Code

//supposing the server is running on localhost and port 8080 
var eurecaClient = new Eureca.Client({uri:'ws://localhost:8080/'});

Note : in nodejs client you need to specify the server uri, otherwise the client will not be able to contact the server!
This is not needed in browser client as it can guess the server uri, but still recommanded.

using a specific transport library

if you use a specific transport library in the server side, you should use the same in the client side

Browser client code example

var eurecaServer = new Eureca.Client({transport:'sockjs'});

NodeJS client code example

//supposing the server is running on localhost and port 8080 
var eurecaClient = new Eureca.Client({transport:'sockjs', uri:'ws://localhost:8080/'};